type JSDynamicObject = any;
var t : boolean = true;
var f : boolean = false;
var s : string = "abc";
var n : number = 42;
var b : bigint = 42n;
let b1 : boolean = t && f;
console.log (typeof (t && f));
console.log (t && f);
let b2 : boolean = f && t;
console.log (typeof (f && t));
console.log (f && t);
let b3 : boolean | string = t && s;
console.log (typeof (t && s));
console.log (t && s);
let b4 : boolean | string = f && s;
console.log (typeof (f && s));
console.log (f && s);
let b5 : string | boolean = s && t;
console.log (typeof (s && t));
console.log (s && t);
let b6 : string | boolean = s && f;
console.log (typeof (s && f));
console.log (s && f);
let b7 : boolean | number = t && n;
console.log (typeof (t && n));
console.log (t && n);
let b8 : boolean | number = f && n;
console.log (typeof (f && n));
console.log (f && n);
let b9 : number | boolean = n && t;
console.log (typeof (n && t));
console.log (n && t);
let b10 : number | boolean = n && f;
console.log (typeof (n && f));
console.log (n && f);
let b11 : boolean | bigint = t && b;
console.log (typeof (t && b));
console.log (t && b);
let b12 : boolean | bigint = f && b;
console.log (typeof (f && b));
console.log (f && b);
let b13 : bigint | boolean = b && t;
console.log (typeof (b && t));
console.log (b && t);
let b14 : bigint | boolean = b && f;
console.log (typeof (b && f));
console.log (b && f);
let b15 : boolean | undefined = t && undefined;
console.log (typeof (t && undefined));
console.log (t && undefined);
let b16 : boolean | undefined = f && undefined;
console.log (typeof (f && undefined));
console.log (f && undefined);
let b17 : undefined | boolean = undefined && t;
console.log (typeof (undefined && t));
console.log (undefined && t);
let b18 : undefined | boolean = undefined && f;
console.log (typeof (undefined && f));
console.log (undefined && f);
let s1 : string = s && s;
console.log (typeof (s && s));
console.log (s && s);
let s2 : string | number = s && n;
console.log (typeof (s && n));
console.log (s && n);
let s3 : number | string = n && s;
console.log (typeof (n && s));
console.log (n && s);
let s4 : string | bigint = s && b;
console.log (typeof (s && b));
console.log (s && b);
let s5 : bigint | string = b && s;
console.log (typeof (b && s));
console.log (b && s);
let s6 : string | undefined = s && undefined;
console.log (typeof (s && undefined));
console.log (s && undefined);
let s7 : undefined | string = undefined && s;
console.log (typeof (undefined && s));
console.log (undefined && s);
let n1 : number = n && n;
console.log (typeof (n && n));
console.log (n && n);
let n2 : number | bigint = n && b;
console.log (typeof (n && b));
console.log (n && b);
let n3 : bigint | number = b && n;
console.log (typeof (b && n));
console.log (b && n);
let n4 : number | undefined = n && undefined;
console.log (typeof (n && undefined));
console.log (n && undefined);
let n5 : undefined | number = undefined && n;
console.log (typeof (undefined && n));
console.log (undefined && n);
var c : any = [1, "a"] && 123;
console.log (c);
var d : boolean | undefined = t && undefined;
console.log (d);
var objectx : JSDynamicObject = {};
var objecty : JSDynamicObject = {};
objectx.prop = t;
objecty.prop = 1.1;
var v1 : boolean = objectx.prop;
var v2 : number = objecty.prop;
var v : boolean | number = v1 && v2;
console.log (v);
